import axios from "axios";
// 登录请求 post参数格式化数据
import qs from "qs";
import { Toast } from "vant";

axios.defaults.baseURL = "http://www.520gongfu.com:9527/api";
axios.defaults.headers.common["Authorization"] = sessionStorage.getItem(
  "zxgToken"
)
  ? sessionStorage.getItem("zxgToken")
  : null;

// 配置全局请求头
function setToken(token) {
  axios.defaults.headers.common["Authorization"] = token;
}

// 获取轮播图
function getSliders(callback) {
  axios
    .get("/home/sliders")
    .then(function (res) {
      callback && callback(res.data);
    })
    .catch(function (error) {
      console.log(error);
    });
}

// 获取导航分类
function getCategoryList(callback) {
  axios
    .get("/home/category")
    .then(function (res) {
      callback && callback(res.data);
    })
    .catch(function (error) {
      console.log(error);
    });
}

// 获取底部分类数据
function getFloorlist(callback) {
  axios
    .get("/home/floorlist")
    .then(function (res) {
      callback && callback(res.data);
    })
    .catch((err) => {
      console.log(err);
    });
}

// 获取商品列表
// function getProductList(callback) {
//   axios
//     .get("/product/list")
//     .then(function (res) {
//       callback && callback(res.data);
//     })
//     .catch((err) => {
//       console.log(err);
//     });
// }

// 获取商品列表
function getProductList(params, callback) {
  return axios
    .get("/product/list", {
      // get请求参数配置
      params: params, // 参数
      // 序列化参数（格式化处理参数）
      paramsSerializer: function (params) {
        return qs.stringify(params);
      },
    })
    .then((res) => {
      callback && callback(res.data);
    })
    .catch((err) => {
      console.log(err);
    });
}

// 获取商品详情
function getProcuctDetail(params) {
  return axios
    .get("/product/detail", {
      params,
    })
    .then((res) => {
      const { data } = res;
      if (data.status == 0) {
        return data.data;
      } else {
        Toast.fail(data.msg);
      }
    });
}

// 获取分类页数据
function getcategoryData() {
  return axios.get("/category/data").then((res) => {
    const { data } = res;
    if (data.status == 0) {
      return data.data;
    } else {
      Toast.fail(data.msg);
    }
  });
}

// 登录请求
function login(params) {
  return axios.post("/user/login", qs.stringify(params)).then((res) => {
    const { data } = res;
    return data;
  });
}

// 注册请求
function register(params) {
  return axios.post("/user/register", qs.stringify(params)).then((res) => {
    const { data } = res;
    return data;
  });
}

// 获取用户数据
function getUserInfo() {
  return axios.get("/user/info").then((res) => {
    const { data } = res;
    return data;
  });
}

// 获取推荐商品
function getRecommend() {
  return axios.get("/product/recommend").then((res) => {
    const { data } = res;
    if (data.status == 0) {
      return data.data;
    } else {
      Toast.fail(data.msg);
    }
  });
}

// 退出登录
function logout() {
  return axios.post("/user/logout").then((res) => {
    const { data } = res;
    return data;
  });
}

// 获取购物车数据
function getCarList() {
  return axios.get("/cart/list").then((res) => {
    const { data } = res;
    if (data.status == 0) {
      return data.data;
    } else {
      // console.log(res);
    }
  });
}

// 添加商品到购物车
function submitToCar(params) {
  return axios.post("/cart/add", qs.stringify(params)).then((res) => {
    const { data } = res;
    return data;
  });
}

// 删除购物车商品
function delCar(params) {
  return axios.post("/cart/del", qs.stringify(params)).then((res) => {
    const { data } = res;
    return data;
  });
}

export {
  setToken,
  getSliders,
  getCategoryList,
  getFloorlist,
  getProductList,
  getProcuctDetail,
  getcategoryData,
  login,
  register,
  getUserInfo,
  getRecommend,
  logout,
  getCarList,
  submitToCar,
  delCar,
};
